/*
  This file is part of Open-Doors.

  Open-Doors is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  
  Open-Doors is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  
  You should have received a copy of the GNU General Public License
  along with Open-Doors.  If not, see <http://www.gnu.org/licenses/>.

  Authors: Rune Thorbek & Araz B. Makoo
*/ 

// We need to override EXTJS own storeHasSelected function because it is buggy.
 Ext.override(Ext.selection.Model, {
        storeHasSelected: function(record) {
            var store = this.store,
                records,
                len, id, i;
            
            if (record.hasId() && store.getById(record)) {
                return true;
            } else {
                records = store.data.items;
                len = records ? records.length : 0; // This check is necessary.
                id = record.internalId;
                
                for (i = 0; i < len; ++i) {
                    if (id === records[i].internalId) {
                        return true;
                    }
                }
            }
            return false;
        }
    });

Ext.application({
    name: 'OpenDoors',
    
    autoCreateViewport: true,
    
    models: ['Menuitems', 'Indsamlere', 'Grupper', 'Ruter', 'Venues', 'Kampagner'],    
    stores: ['Menuitems', 'Indsamlere', 'IndsamlereCombobox', 'Grupper', 'Venues', 'Kampagner',
	     'Ruter', 'RuterCombobox', 'GruppensIndsamlere', 'GruppensRuter', 'GruppeCombobox',
	     'VenueCombobox', 'KampagneCombobox', 'ChooseVenueCombobox'],
    controllers: ['Controller']
});